import glob
import pandas as pd
import requests
import json
import os


def get_input(raw_input):
    prompt = "假如你是一名资深的心理咨询督导，需对心理咨询的逐字稿进行提炼，请按照以下的规则进行修改。\n" \
             "规则：\n" \
             "1. 删除无关或者重复的信息，使问题更聚焦。\n" \
             "2. 使用更明确的表达方式，使句子传达的信息更清晰。\n" \
             "3. 语法和语言层面的优化：删减过于口语化的表达，提高了整体的语言质量。\n" \
             "4. 逻辑流程调整：在原文的基础上，修改版有意识地保持了问题和答案、情况和解释的先后顺序，使得整个会话的逻辑更加清晰。\n" \
             "5. 使用自然、连贯的引导词，加强对话的连贯性。\n" \
             "6. 确保语句完整：在修改后的段落中，删除了一些不完整的语句，保证了语句的完整性\n" \
             "7. 保持文章结构的完整。\n" \
             "此外，我会给你一个例子让你参考，原文：\n" \
             "来访者：最近怎么说呢，跟女朋友之间有这么一点。不知道怎么讲就挺奇怪的。\n" \
             "咨询师：现在哪里奇怪？\n" \
             "来访者：因为我那个女朋友本来说已经分手了，但是呢就是我是不想分，而且我感觉她还是喜欢我，我也还是喜欢她。之后还有联系，目前怎么说呢，她是不想复合，但是又也不是那么想分手，就维持在现在这样一个状态。\n" \
             "咨询师：能具体讲讲什么状态吗？\n" \
             "来访者：就是虽然没有分手，但是还是男女朋友的关系，不对，虽然没有复合呀。\n" \
             "咨询师：没有复合，是吧，我澄清一下，我不知道理解的对不对？首先，你们现在其实已经分手了。\n" \
             "来访者：对。\n" \
             "咨询师：但是还是维持男女朋友的关系？\n" \
             "咨询师：那我很好奇你说的男女朋友关系，这种状态能大概讲一下吗？因为男女朋友的这个关系呢不同人有不同的定义，所以我就想了解一下，你觉得你们还是男女朋友关系，是因为哪些原因或者哪些行为，你觉得你们还是男女朋友的关系？\n" \
             "来访者：我就在分手之后嘛，还是就忍不住去找她，找她之后她也出来见我了，然后还是一块儿，还像没分手之前一样出去玩嘛。\n" \
             "咨询师：就是有见面也出去玩？\n" \
             "来访者：对，有些行为之类的，就是还有亲密行为，她也没有拒绝。\n" \
             "修改后：\n" \
             "来访者：最近跟女朋友之间有这么一点奇怪。\n" \
             "咨询师：哪里奇怪？\n" \
             "来访者：因为我那个女朋友本来说已经分手了，但是我不想分，而且我感觉她还是喜欢我，我也还是喜欢她。之后还有联系，目前怎么说呢，她是不想复合，但是又也不是那么想分手，就维持在现在这样一个状态。\n" \
             "咨询师：能具体讲讲什么状态吗？\n" \
             "来访者：就是虽然没有分手，但是还是男女朋友的关系，不对，虽然没有复合呀。\n" \
             "咨询师：没有复合，是吧，我澄清一下，我不知道理解的对不对？首先，你们现在其实已经分手了。\n" \
             "来访者：对。\n" \
             "咨询师：但是还是维持男女朋友的关系？\n" \
             "来访者：对。\n" \
             "咨询师：那我很好奇你说的男女朋友关系，这种状态能大概讲一下吗？因为男女朋友的这个关系呢不同人有不同的定义，所以我就想了解一下，你觉得你们还是男女朋友关系，是因为哪些原因或者哪些行为，你觉得你们还是男女朋友的关系？\n" \
             "来访者：我就在分手之后嘛，还是就忍不住去找她，找她之后她也出来见我了，然后还是一块儿，还像没分手之前一样出去玩嘛。\n" \
             "咨询师：就是有见面也出去玩？\n" \
             "来访者：对，有些行为之类的，就是还有亲密行为，她也没有拒绝。\n" \
             "请按照以上的要求对以下的内容进行修改，修改之后对话轮数不能减少，需修改的原文如下：\n{}\n" \
             "修改后的内容如下：\n".format(raw_input)

    return prompt


URL = "http://123.58.249.41:9993/api/qwen72b/chatbot"
input_datas = glob.glob('./data/*.xlsx')
for f in input_datas:
    f_name = f.split('/')[-1].replace('.xlsx', '')

    df = pd.read_excel(f, header=1)
    belong = list(df['所属'])
    contents = list(df['话语内容'])

    all_content = []
    prev_b = ''
    for b, c in zip(belong, contents):
        if b == prev_b:
            all_content[-1] += c
        else:
            utter = b + '：' + c
            all_content.append(utter)

    all_content_str = "\n".join(all_content)
    prompt = get_input(all_content_str)

    json_data = {
        "content": prompt,
        "session_id": "xxxxxx",
        "req_id": "xxxxxx",
        "gen_config": {
            "top_k": 10,
            "top_p": 0.9,
            "temperature": 1.0,
        }
    }
    ret = requests.post(URL, json=json_data)
    res = json.loads(ret.text)['data']['response_content']

    out_path = os.path.join('/workspace/psycho_trainning/tools/revise_verbatim_draft/data/output', f'{f_name}.json')
    json.dump(res.split('\n'), open(out_path, 'w', encoding='utf-8'), ensure_ascii=False)
